Scalar-valued Functions [dbo].[CalculateFiscalPeriod]
Properties
PropertyValue
ANSI Nulls OnYes
Quoted Identifier OnYes
Parameters
NameData TypeMax Length (Bytes)
@transDatedatetime8
@firstMonthFiscalYearint4
SQL Script
CREATE   FUNCTION [dbo].[CalculateFiscalPeriod]
  (@transDate datetime, @firstMonthFiscalYear int)
RETURNS int
AS
BEGIN
DECLARE @fiscalMonth int
DECLARE @fiscalYear int
DECLARE @transMonth int
DECLARE @transYear int
DECLARE @fiscalPeriod char(6)
SET @transMonth = DATEPART(m, @transDate)
SET @transYear = DATEPART(yyyy, @transDate)
IF @firstMonthFiscalYear = 0
    SET @firstMonthFiscalYear = 1
IF @firstMonthFiscalYear = 1
BEGIN
    SET @fiscalMonth = @transMonth
    SET @fiscalYear = @transYear
END
ELSE IF @firstMonthFiscalYear <= @transMonth
BEGIN
    SET @fiscalMonth = @transMonth - @firstMonthFiscalYear + 1
    SET @fiscalYear = @transYear + 1
END
ELSE
BEGIN
    SET @fiscalMonth = 13 - @firstMonthFiscalYear + @transMonth
    SET @fiscalYear = @transYear
END
IF @fiscalMonth < 10
    SET @fiscalPeriod = CAST(@fiscalYear as char(4)) + '0' + CAST(@fiscalMonth as char(1))
ELSE
    SET @fiscalPeriod =  CAST(@fiscalYear as char(4)) + CAST(@fiscalMonth as char(2))
RETURN CAST(@fiscalPeriod as int)
END

GO
Uses
Used By